package com.alex.zjg;

/**
 * @ClassName charu
 * @Description TODO
 * @Author zjg
 * @Date 2021/4/170:02
 * @Version 2.0
 */
//什么是插入排序 就是检查第i个数字，如果在它的左边的数字比它大，进行交换，这个动作一直继续下去，
// 直到这个数字的左边数字比它还要小，就可以停止了。
// 插入排序法主要的回圈有两个变数：i和j，每一次执行这个回圈，就会将第i个数字放到左边恰当的位置去。

import com.alex.zjg.util.AlgorithmUtil;
import java.util.Arrays;

/**3,2,6,4,9,1
 * 0 ----> 2,3
 * 1 ----->2,3,6
 * 2 ----->2,3,4,6
*  3 ----->2,3,4,6,9
 * 4 ----->1,2,3,4,6,9
*/
 public class charu {


  public static void main(String[] args) {
    int[] sorted = sorted(new int[]{65,4,43,37,31,17,6,46});
    System.out.println(Arrays.toString(sorted));
  }

  public static int[] sorted(int[] arr) {
    if(arr==null || arr.length<2){
      return arr;
    }
    for (int i=0;i<arr.length-1;i++){
      for (int j=i+1;j>0&&arr[j-1]>arr[j];j--){
        AlgorithmUtil.swap(arr,j-1,j);
      }
    }
    return arr;
  }
}
